let callback: ((code: number) => void) | null;

process.on("exit", (code) => {
  // 这里可以清理资源、保存数据等操作
  if (callback != null) {
    callback(code);
    callback = null;
  }
});

// 监听进程断开事件(包括 ctrl + c), 进程断开后，退出应用
process.on("SIGINT", () => {
  // 清理和关闭操作
  process.exit(0); // 可选：手动退出进程
});

// 监听程序终止信号（SIGTERM）
process.on("SIGTERM", () => {
  // 清理和关闭操作
  process.exit(0); // 可选：手动退出进程
});

/**
 * 注册应用程序退出回调
 * @param cb 退出时回调的函数
 */
export default function onExit(cb: () => void) {
  callback = cb;
}
